<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>正则表达式练习</title>
    <script>
        function checkPhone(){
            let phone = document.getElementById("phone").value;
            let regExp = /^[1][3589]\d{9}$/;
            if(regExp.test(phone)){
                document.getElementById("s1").innerHTML = "<span style='color:green;'>手机号码格式正确</span>";
            } else{
                document.getElementById("s1").innerHTML = "<span style='color:red;'>您输入的手机号码格式有误</span>";
            }
        }

        function checkPersonCard(){
            let personCard = document.getElementById("personCard").value;
            let regExp = /^\d{15}(\d{2}[0-9X])?$/i;
            if(regExp.test(personCard)){
                document.getElementById("s2").innerHTML = "<span style='color:green;'>身份证号码格式正确</span>";
            } else{
                document.getElementById("s2").innerHTML = "<span style='color:red;'>您输入的身份证号码格式有误</span>";
            }
        }

        function checkEmail(){
            let email = document.getElementById("email").value;
            let regExp = /^[a-z0-9]\w+[@][a-z0-9]+(\.com)(\.cn)?$/i;
            if(regExp.test(email)){
                document.getElementById("s3").innerHTML = "<span style='color:green;'>电子邮箱格式正确</span>";
            } else{
                document.getElementById("s3").innerHTML = "<span style='color:red;'>您输入的电子邮箱格式有误</span>";
            }
        }

        function checkUsername(){
            let username = document.getElementById("username").value;
            let regExp = /^[a-z0-9][a-z0-9_\.-]{2,16}[a-z0-9]$/i;
            if(regExp.test(username)){
                document.getElementById("s4").innerHTML = "<span style='color:green;'>用户名格式正确</span>";
            } else{
                document.getElementById("s4").innerHTML = "<span style='color:red;'>您输入的用户名格式有误</span>";
            }
        }
    </script>
</head>
<body>
<!--
    手机号码由11位数字组成,且必须以13、15、18、19开头
-->
<input type="text" id="phone">
<button onclick="checkPhone()">校验手机号码</button>
<span id="s1"></span><br>

<!--
    校验身份证号码
    身份证号码只能是15位或者18位字符
    如果是15位,要求必须全部是数字
    如果是18位,要求前17位必须全部是数字,最后一位可以是数字或者X
-->
<input type="text" id="personCard">
<button onclick="checkPersonCard()">校验身份证号码</button>
<span id="s2"></span><br>


<!--
    校验电子邮箱
    要求邮箱必须以英文字母或者数字开头,后面可以跟英文字母数字或者下划线
    后面跟@符号,@符号后面跟英文字母或者数字
    以.com或者.com.cn结尾
-->
<input type="text" id="email">
<button onclick="checkEmail()">校验电子邮箱</button>
<span id="s3"></span><br>

<!--
    校验用户名
    用户名由字母、数字、下划线、点、减号组成,只能以数字字母开头和结尾,长度4-18位
-->
<input type="text" id="username">
<button onclick="checkUsername()">校验用户名</button>
<span id="s4"></span><br>
</body>
</html>